import axios from "axios";
import store from "@/store";
import router from "@/router";
import { ElMessage } from 'element-plus'
const service = axios.create({
  baseURL: 'https://146.56.228.3/MQTT_Server',
  // baseURL: 'http://192.168.3.121:5233',
  // baseURL: 'http://192.168.3.23:5233',

  timeout: 60000 // 请求超时时间
});

// 请求拦截器
let whiteName = ['/system/login', '/system/get-public-key']
service.interceptors.request.use(
  config => {
    if (!whiteName.includes(config.url)) {
      let token = JSON.parse(sessionStorage.getItem("token"));
      config.headers['token'] = token
    } else {
      console.log("token", store.state.token)
    }
    return config;
  },
  error => {
    // 请求错误处理
    return Promise.reject(error);
  }
);

// 响应拦截器
service.interceptors.response.use(
  response => {
    // 对响应数据做处理，例如只返回data部分
    const res = response.data;

    if (res.status == 'ERROR') {
      return ElMessage({
        message: res.error,
        type: 'warning' // 可选，'success', 'warning', 'info', 'error'
      })
    } else {
      return res;
    }
  },
  error => {
    // 服务器返回的错误处理

    // ElMessage({
    //   message: error.message,
    //   type: 'warning' // 可选，'success', 'warning', 'info', 'error'
    // })
    if (error.status == 401) {
      ElMessage({
        message: '登录信息已更新,请重新登录',
        type: 'warning' // 可选，'success', 'warning', 'info', 'error'
      })
      router.push("/")
    }
    return error;
  }
);
export default service;